package com.kate.mall.order.price;


import com.kate.mall.order.dto.PromotionActivityDTO;

/**
 * @Description: 订单价格计算抽象工厂
 * @Auther: 新梦想*陈超
 * @Date: 2021/10/30 19:30
 */
public interface OrderPriceCalculatorFactory {
    /**
     * 创建订单总金额价格计算组件
     * @return 订单总金额价格计算组件
     */
    TotalPriceCalculator createTotalPriceCalculator();

    /**
     * 创建促销活动价格计算组件
     * @param promotionActivity 促销活动
     * @return 促销活动价格计算组件
     */
    PromotionActivityCalculator createPromotionActivityCalculator(
            PromotionActivityDTO promotionActivity);

    /**
     * 创建运费价格计算组件
     * @return 运费价格计算组件
     */
    FreightCalculator createFreightCalculator();
}
